package org.hcyspartnoc.demo.common.core;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;

import java.util.ArrayList;

@Data
public class PageBean<P,V> {
    public static final int MAX_PAGE_SIZE = 20;
    public static final int MIN_PAGE_SIZE = 1;
    //当前页
    private Long pageNum;
    //每页的数量
    private Long pageSize;
    //当前页的数量
    private int size;
    //总记录数
    private long total;
    //总页数
    private Long pages;
    //结果集
    private ArrayList<V> list;

    public PageBean(Page<P> page,ArrayList<V> voList) {
        this.pageNum = page.getCurrent();
        this.pageSize = page.getSize();
        this.size = page.getRecords().size();
        this.total = page.getTotal();
        this.pages = page.getPages();
        this.list = voList;
    }
}




///**
// * @Author: aLittleBai
// * @Description: 分页
// * @DateTime: 2024/2/2 14:59
// **/
//@Data
//public class PageBean<T> {
//    public static final int MAX_PAGE_SIZE = 20;
//    public static final int MIN_PAGE_SIZE = 1;
//    //当前页
//    private int pageNum;
//    //每页的数量
//    private int pageSize;
//    //当前页的数量
//    private int size;
//    //总记录数
//    private long total;
//    //总页数
//    private int pages;
//    //结果集
//    private List<T> list;
//
//
//    public PageBean(List<T> list) {
//        PageInfo<T> pageInfo = new PageInfo<>(list);
//        this.pageNum = pageInfo.getPageNum();
//        this.pageSize = pageInfo.getPageSize();
//        this.size = pageInfo.getSize();
//        this.total = pageInfo.getTotal();
//        this.pages = pageInfo.getPages();
//        this.list = pageInfo.getList();
//        //清理 ThreadLocal 存储的分页参数,保证线程安全
//        PageHelper.clearPage();
//        System.out.println(pageInfo.toString());
//    }
//
//    /**
//     * 获取分页
//     *
//     * @param currentPage 当前页
//     * @param pageSize    每页大小
//     * @param consumer    执行mapper的lambda
//     * @param <T>         元素类型
//     * @return pageBean
//     */
//    static public <T> PageBean<T> getPageBean(int currentPage, int pageSize, Supplier<List<T>> consumer) {
//        PageHelper.startPage(currentPage, pageSize);
//        List<T> dataList = consumer.get();
//        return new PageBean<>(dataList);
//    }
//}
